
package com.jiezheng.huinong.db.conf;

import java.util.List;

import com.jiezheng.huinong.model.ApplyDetail;
import com.jiezheng.huinong.model.ApplyIndex;
import com.jiezheng.huinong.model.ApplyInfo;
import com.jiezheng.huinong.model.IndexInfo;

/**
 * @author Administrator
 *
 */
public interface IApplyManageDAO {
	
	/**
	 * 增加申请
	 */
	public void addApply(ApplyInfo apply);
	
	/**
	 * 增加申请详细信息
	 */
	public void addApplyDetail(ApplyDetail apply);
	
	/**
	 * 删除申请
	 */
	public void deleteApply(String applyNo);
	
	/**
	 * 修改申请
	 */
	public void modifyApply(ApplyInfo apply);
	
	/**
	 * 挂接指标
	 */
	public void jointIndex(ApplyInfo apply);
	
	/**
	 * 取消挂接指标
	 */
	public void unJointIndex(ApplyInfo apply);
	
	/**
	 * 根据申请号取得申请信息
	 */
	public ApplyInfo getApplyByApplyNo(String applyNo);
	
	
	/**
	 * 取得所有申请信息的总数, 根据条件过滤
	 * @return
	 */
	public Integer getTotalApplyNum(ApplyInfo cond, List<Integer> statusRange);
	
	/**
	 * 取得所有申请/指标信息的总数, 根据状态过滤
	 * @return
	 */
	public Integer getTotalApplyIndexNum(IndexInfo cond, int status);
	
	/**
	 * 取得所有申请详细信息的总数
	 * @return
	 */
	public Integer getTotalApplyDetailNum(String applyNo);
	
	/**
	 * 取得所有申请信息的总数, 根据状态过滤, 待审核
	 * @return
	 */
	public Integer getTotalToAuditApplyNum(IndexInfo cond);
	
	/**
	 * 分页取指标信息数据, 根据条件过滤
	 * **/
	public List<ApplyInfo> getApplyInfo( ApplyInfo cond, List<Integer> statusRange, Integer startRow, Integer rows);
	
	/**
	 * 分页取指标/审核信息数据, 根据状态过滤
	 * **/
	public List<ApplyIndex> getApplyIndexInfo(IndexInfo cond, int status, Integer startRow, Integer rows);
	
	/**
	 * 分页取指标/审核信息数据, 根据状态过滤, 待审核
	 * **/
	public List<ApplyIndex> getToAuditApplyInfo(IndexInfo cond, Integer startRow, Integer rows);
	
	/**
	 * 分页取指标信息数据
	 * **/
	public List<ApplyDetail> getApplyDetailInfo(String applyNo, Integer startRow, Integer rows);
	
	/**
	 * 取所有的指标信息数据, 用于导出数据
	 * **/
	public List<ApplyDetail> getApplyDetailInfo(String applyNo);

	/**
	 * 取得取大的申请编号
	 * @return
	 */
	public String getMaxApplyNo();

	/**
	 * 取得取大的实拨编号
	 * @return
	 */
	public String getMaxShiboNo();
	
	/**
	 * 更新实拨编号
	 * @return
	 */
	public void updateShiboNo(String shiboNo);
	
	/**
	 * 改变申请信息状态
	 */
	public void changeStatus(ApplyInfo apply);
	
	/**
	 * 支付申请
	 */
	public void changePayStatus(ApplyInfo apply);
}
